package sistemasdistribuidos;

import java.net.*;
import java.io.*;


/** Aplicacao Cliente
 *
 * @author Rafael Neri
 * @author Helem Chaves
 * @author Airton Filho
 * @author Elizeu Rodrigues
 */
public class Cliente2 extends Thread {

   /*
    * Método responsável por tentar criar 10.000 clientes.
    *
    */
    public static void main(String arg[]) throws IOException{
            Thread ThClient;
            //loop pra tentar criar 10k conexoes utilizando threads
            for(int i = 0; i < 10000; i++){
                try{
                    ThClient = new Thread(new Cliente2());
                    ThClient.start();
                }
                catch(OutOfMemoryError e){
                      //Erro de Memoria
                }
                System.gc();
            }
   }

    //executado apos o comando start
    @Override
    synchronized public void run(){
        Socket sock = null;
        try{
            //cria um socket
            sock = new Socket("localhost",15);

            //msg: conectado com sucesso
            DataInputStream in = new DataInputStream(sock.getInputStream());
            String idClient = in.readLine();
            System.out.println("Cliente no." + idClient + " conectado ao servidor.");

        }
        catch(Exception e){
             //conexao recusada

        }
    }
 }